Dear
Klaus,
Thanks for the photos;
its always nice to see something working J
Regarding operation at
200MHz. I guess you could call it a bug but only because it goes wrong rather
than display “LIMIT” or something similar. The issue is that the design takes
the 50MHz clock from the board and multiplies it by 4 to generate 200MHz
internally. After that, everything relates to that
200MHz.
Once you are above
50MHz the output is purely down to the phase accumulator output being multiplied
by 16 by the DCM and then divided by 2 (to ensure square wave).
; Also for frequencies of 50MHz and above, there is no
additional division performed
; after the DCM which multiplies frequency and reduces the jitter. Therefore the
DDS_scaling
; word will be set to zero and the output of the DCM will divide by
2.
;
; Freq DDS control word
DDS Scaling Synthesized
Frequency
;
of Phase Accumulator
;
; 50MHz
08000000
00
6.25MHz
; 100MHz
10000000
00
12.50MHz
;
; You will notice that for frequencies of 50MHz and above, the upper byte of
the
; DDS control word is 08 hex or greater. In other words, bit3 and/or bit4 of
that byte
; are High (bits 27 and/or 28 of the full 32-bit word). This is the indication
that
; the control words are complete.
Once you are above
100MHz the output is of the phase accumulator is running above its normal
maximum of 12.5MHz and so internally stuff is running very fast. The output of
the second DCM will be as much as 400MHz and it’s really impressive it is
working. Of course the counter used to divide that 400MHz will not be working
properly but since we only tap off the divide by 2 stage you get away with it!
J
100MHz was my safe
limit but 200MHz is pushing the envelope so I wouldn’t advise ‘fixing’ the
PicoBlaze math’s just to break the silicon. If you want higher then really this
is where you need to do something more logical. Remember that internally the
frequency is already up to 400MHz so really you just need to bring that out
directly rather than divided by 2. May be if you use a DDR clock forwarding
technique on the output in you can keep it fairly square. By now you should
probably be into differential clocks anyway. However, you need to remember that
the jitter is more or less constant so as your frequency increases the % jitter
is getting larger and larger.
Some years ago we made
some small frequency generator boxes using this scheme but they went up to
640MHz by adding an external PPL that multiplied by 8 and really reduced jitter.
In other words the FPGA did all the smart stuff and then the external PPL just
did the translation to high frequency. It also had an LVDS output.
Regards,
Ken
From: Klaus
Philipp [mailto:philipp.klaus@t-online.de]
Sent: 19 February 2008 20:46
To: Ken Chapman
Subject: AW: Spartan 3E undocumented DCM
feature
Dear
Ken,
Thanks for your help.
I’m considering using the parts of enterpoint. They are cheap enough, easy to
handle and easy to order. I like British companies. They like Credit Cards.
It’s not a joke. I will use
their parts in my final design.
But digikey was faster.
So I have built a new ugly board with a XC3S500E-PQ208 device. I like to now
every pin personally. Especially the power pins. One mistake and the chip will
die after power on. But everything worked fine. The pictures are attached.
The next step was to
load my favourite design, “Ken Chapman’s frequency generator”. Everything worked
very fine. Then I tried to check the maximum
frequency.
199 999 999 was OK. But
with 200 000 000 the display showed 08000000 and 1F instead of 20000000 and
00.
It seems there is a
small software bug in the PicoBlaze software. I have tried to find the fault. In
the routine normalize loop, I hoped to find the problem, but I was wrong. Could
you help me again, I’m afraid I’m too stupid.
Regards,
Klaus
Philipp
Von: Ken Chapman
[mailto:ken.chapman@xilinx.com]
Gesendet:
Montag, 28. Januar 2008 14:18
An: Klaus Philipp
Betreff: RE: Spartan 3E undocumented DCM
feature
Dear
Klaus,
When possible try to
purchase boards rather than devices. For such low volume (experiments) the use
of boards is just a lot easier to handle physically. They may cost a bit more
but they save you a lot of time and effort (and probably save you breaking some
too!).
Have a look at
these…..
I really like the look
of this one for prototyping…..
http://www.enterpoint.co.uk/component_replacements/craignell.html
Regards,
Ken
From: Klaus
Philipp [mailto:philipp.klaus@t-online.de]
Sent: 25 January 2008 21:18
To: Ken Chapman
Subject: AW: Spartan 3E undocumented DCM
feature
Dear
Ken,
Thank you very much,
for your fast and clear answer. It is a great help for me. I could do a clear
decision for the chip XC3S500E-4PQ208. It’s possible to order the part at
Digikey as a normal human. So this evening I will order 4 parts at Digikey. In
Now I’m going to
rebuild my ugly prototype board to the XC3S500E type. I guess it will take a few
hours, but it’s worth it. With your help I will be able to finish my design
successfully.
Thank you very much for
your answer my question on the publishing. It’s clear that I can not distribute
things that don’t belong to me. I don’t want to distribute things like Pico
Blaze or ISE or anything that belongs to XILINX or a third
party.
My intension is to
split your frequency generator or your frequency counter into a separate block
of the design. Without Pico Blaze and the rest. I would like to show what is
possible with XILINX DCM of the Spartan 3e series. The reason that I want to use
parts of your designs is: Your comments are so clear, even a stupid than I can
understand it. I hope the rest of the world will understand it
also.
Before publishing I
will send the article to you (in English language). Without your permission I
won’t do anything.
Yours
sincerely,
Klaus
Philipp
Von:
Ken Chapman [mailto:ken.
Gesendet: Montag, 21. Januar 2008
12:02
An: Klaus
Philipp
Cc: Carsten Meyer;
Betreff: RE: Spartan 3E undocumented DCM
feature
Dear
Klaus,
Thank your or your
interesting email. Unfortunately, I am very busy so I will have to make the
shortest of answers to your questions. Please see these
below.
First
question:
ten
month ago, I had
bought a Spartan 3E development board
DO-SP3E1600E-DK-UNI-G.
I checked your
designs the frequency generator and the frequency counter. Everything worked
very well.
Then I build an ugly
Spartan 3 board. Fist I implemented your designs for a XC3S400 chip.
But your bitgen
option for the DCM
-g
cfg_dfs_s_x1y1:1111000011111111xxx111xxxxx1xxxxxxxxxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxxx01000000
didn’t
work.
My question is: Is
there a similar DCM option for the XC3S400 chip
also?
Spartan-3 is the old
product and Spartan-3E is the new product. The DCM is NOT the same. Although we
conducted initial experiments into ‘frequency alignment’ using the Spartan-3
device we discovered that it was not correct and then changes were made before
Spartan-3E was implemented. So whilst there is (or was) a similar option for the
older Spartan-3 devices it really does not work properly and should never be
used. Please use Spartan-3E.
Second
question:
In a few months I
will have to finish a design with a FPGA for the German computer magazine
C’T.
They are running a
very interesting project.
http://www.heise.de/ct/projekte/ct-lab/
And now I have to
decide what kind of FPGA is the best. Should I use a XC3S400 or a XC3S250E
chip?
The Spartan-3E and
Spartan-3A(N) devices are newer and consequently include improvements. When sold
correctly they are also lower price than then older Spartan-3 devices. Unless
there is a really compelling reason to use old technology then please move
forward and use 3E or 3A(N).
The chip XC3S400 is
in
With the chip
XC3S250E, there is no problem with the DCMs, but for normal people like
students,
it’s not possible to
order this part. What part would you recommend?
Sorry, I am not in
sales or the University program so I can not understand why you should have
supply issues. I will forward your email to the Xilinx University Program team
as they should be interested in your issue!
Third
question:
I would like to use
some parts of your designs for my article. Most of the work was the programming
of
the Pico Blaze
processor. Those tasks will be provided by the external processor
ATMEGA32.
You know it better
than I, a phase accumulator or a 32 bit counter is just a six liner in
VHDL.
I would like to
realize your frequency generator and your frequency counter as blocks in the
design.
Until now I designed
a SPI interface for the ATMEGA32 and emulated the AD9833
chip.
When the design is
finished I will send it to you. Without your permission I’m not going to publish
it.
Do I need your
permission or not?
I really don’t think
you need permission to publish material providing you acknowledge the source.
Just be careful NOT to distribute anything which you are not entitled to
distribute. For example, you will notice that my reference designs for the
Spartan Starter Kits do NOT include PicoBlaze. These reference designs provide
the source code for the design only and then tell you to obtain PicoBlaze files
from the web site. This is because PicoBlaze is covered by a license agreement.
In the same way you can not distribute the ISE
tools.
Normally we are very
excited that people should publish material using our devices. Providing you are
publishing material in a positive ‘spirit’ then everyone will be happy! It is
only natural that if you blatantly distribute information that should not be
distributed and also use that in a negative way towards Xilinx then that is when
legal people become upset! J
A short history of
why this happened:
Ten months ago I had
to train a student of the
He’s results were
very good. With your frequency generator we can change the pixel clock of the
VGA test picture generator in 1 Hz steps. Then I bought a SPARTAN 3E Starter Kit
with my own money and spend it as a gift to our subcontractor. He did me a great
favor at eastern 2007. Now our subcontractor is able to deliver LCD-Screens with
a valid VGA timing.
If you are
interested, I will send the design of the VGA test picture generator to
you.
We really would like to
put more customer designs onto our reference design web site and this sounds
like an ideal one. The main thing that stops us putting customer designs on web
sites is the publishing conditions of the customers and the general lack of
information. Assuming you want to share your design then the first should not be
an issue. I hope you have appreciated the detail provided with my reference
designs and as a result you have been able to make good progress without asking
too many technical questions. Unfortunately if a design is not well presented
then it causes hundreds of questions to be asked to our support team and direct
to the author of the design. So however good a reference design is as doing what
it does, I have to say that its value is very low unless it is well presented
and documented. I can not possibly ask you to put in that effort but obviously I
would be delighted if you did and then we could put it on our web
site.
Yours
sincerely,
Ken
Chapman